Combine values in list of dictionaries¶
Combine values in list of dictionaries.
Sample data: [
{‘item’: ‘item1’, ‘amount’: 400},
{‘item’: ‘item2’, ‘amount’: 300},
{‘item’: ‘item1’, ‘amount’: 750}
]
Expected Output:
Counter({‘item1’: 1150, ‘item2’: 300})
def combine_lod(D):
result = {}
for x in D:
if x['item'] in result:
result[x['item']] += x['amount']
else:
result[x['item']] = x['amount']
return result
def combine_lod_coll(D):
from collections import Counter
result = Counter()
for d in D:
result[d['item']] += d['amount']
return dict(result)
Test:
LOD = [
{'item': 'item1',
'amount': 400
},
{'item': 'item2',
'amount': 300
},
{'item': 'item1',
'amount': 750
},
]
print(combine_lod(D)) # {'item1': 1150, 'item2': 300}
print(combine_lod_coll(D)) # {'item1': 1150, 'item2': 300}